//
//  PPHTTPRequest.m
//  PPNetworkHelper
//
//  Created by AndyPang on 2017/4/10.
//  Copyright © 2017年 AndyPang. All rights reserved.
//

#import "PPHTTPRequest.h"

#import "PPNetworkHelper.h"

#import "AFURLRequestSerialization.h"

#define app_bundle_name ([NSBundle mainBundle].infoDictionary[@"CFBundleIdentifier"])
#define app_short_version ([NSBundle mainBundle].infoDictionary[@"CFBundleShortVersionString"])

@implementation PPHTTPRequest


/*
 配置好PPNetworkHelper各项请求参数,封装成一个公共方法,给以上方法调用,
 相比在项目中单个分散的使用PPNetworkHelper/其他网络框架请求,可大大降低耦合度,方便维护
 在项目的后期, 你可以在公共请求方法内任意更换其他的网络请求工具,切换成本小
 */

#pragma mark - ==================项目api服务器 请求的公共方法 ==================

+ (NSURLSessionTask *)req:(NSString *)URL parameters:(NSDictionary *)parameter success:(PPRequestSuccess)success failure:(PPRequestFailure)failure
{
    // 在请求之前你可以统一配置你请求的相关参数 ,设置请求头, 请求参数的格式, 返回数据的格式....这样你就不需要每次请求都要设置一遍相关参数
    // 设置请求头
    // afn的baseUrl在PPNetworkHelper+initialize方法中设置了
    
    //    [PPNetworkHelper setRequestSerializer:PPRequestSerializerHTTP];
    //
    //    [PPNetworkHelper setResponseSerializer:PPResponseSerializerHTTP];
    
    
    //    [PPNetworkHelper setValue:[self deviceInfoStr] forHTTPHeaderField:@"taotoutiao-agent"];
    
    [PPNetworkHelper setRequestTimeoutInterval:30];
    
    [PPNetworkHelper openLog];
    
    // 发起请求
    
    return [PPNetworkHelper POST:URL parameters:parameter success:^(id resObj) {
        
        // 在这里你可以根据项目自定义其他一些重复操作,比如加载页面时候的等待效果, 提醒弹窗....
        
        success(resObj);
        
    } failure:^(NSError *error) {
        // 同上
        failure(error);
    }];
}

@end
